{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Compiled Sequential Importance Sampling\n",
    "\n",
    "Compiled sequential importance sampling [1], or inference compilation, is a technique to amortize the computational cost of inference by learning a proposal distribution for importance sampling.\n",
    "\n",
    "The proposal distribution is learned to minimise the KL divergence between the model and the guide, $\\rm{KL}\\!\\left( p({\\bf z} | {\\bf x}) \\lVert q_{\\phi, x}({\\bf z}) \\right)$. This differs from variational inference, which would minimise $\\rm{KL}\\!\\left( q_{\\phi, x}({\\bf z}) \\lVert p({\\bf z} | {\\bf x}) \\right)$. Using this loss encourages the approximate proposal distribution to be broader than the true posterior (mass covering), whereas variational inference typically learns a narrower approximation (mode seeking). Guides for importance sampling are usually desired to have heavier tails than the model (see this [stackexchange question](https://stats.stackexchange.com/questions/76798/in-importance-sampling-why-should-the-importance-density-have-heavier-tails)). Therefore, the inference compilation loss is usually more suited to compiling a guide for importance sampling.\n",
    "\n",
    "Another benefit of CSIS is that, unlike many types of variational inference, it has no requirement that the model is differentiable. This allows it to be used for inference on arbitrarily complex programs (e.g. a Captcha renderer [1]).\n",
    "\n",
    "This example shows CSIS being used to speed up inference on a simple problem with a known analytic solution."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch\n",
    "import torch.nn as nn\n",
    "import torch.functional as F\n",
    "\n",
    "import pyro\n",
    "import pyro.distributions as dist\n",
    "import pyro.infer\n",
    "import pyro.optim\n",
    "\n",
    "import os\n",
    "smoke_test = ('CI' in os.environ)\n",
    "n_steps = 2 if smoke_test else 2000"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Specify the model:\n",
    "\n",
    "The model is specified in the same way as any Pyro model, except that a keyword argument, `observations`, must be used to input a dictionary with each observation as a key. Since inference compilation involves learning to perform inference for any observed values, it is not important what the values in the dictionary are. `0` is used here."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "def model(prior_mean, observations={\"x1\": 0, \"x2\": 0}):\n",
    "    x = pyro.sample(\"z\", dist.Normal(prior_mean, torch.tensor(5**0.5)))\n",
    "    y1 = pyro.sample(\"x1\", dist.Normal(x, torch.tensor(2**0.5)), obs=observations[\"x1\"])\n",
    "    y2 = pyro.sample(\"x2\", dist.Normal(x, torch.tensor(2**0.5)), obs=observations[\"x2\"])\n",
    "    return x"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### And the guide:\n",
    "\n",
    "The guide will be trained (a.k.a. compiled) to use the observed values to make proposal distributions for each unconditioned `sample` statement. In the paper [1], a neural network architecture is automatically generated for any model. However, for the implementation in Pyro the user must specify a task-specific guide program structure. As with any Pyro guide function, this should have the same call signature as the model. It must also encounter the same unobserved `sample` statements as the model. So that the guide program can be trained to make good proposal distributions, the distributions at `sample` statements should depend on the values in `observations`. In this example, a feed-forward neural network is used to map the observations to a proposal distribution for the latent variable.\n",
    "\n",
    "`pyro.module` is called when the guide function is run so that the guide parameters can be found by the optimiser during training."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "class Guide(nn.Module):\n",
    "    def __init__(self):\n",
    "        super(Guide, self).__init__()\n",
    "        self.neural_net = nn.Sequential(\n",
    "            nn.Linear(2, 10),\n",
    "            nn.ReLU(),\n",
    "            nn.Linear(10, 20),\n",
    "            nn.ReLU(),\n",
    "            nn.Linear(20, 10),\n",
    "            nn.ReLU(),\n",
    "            nn.Linear(10, 5),\n",
    "            nn.ReLU(),\n",
    "            nn.Linear(5, 2))\n",
    "\n",
    "    def forward(self, prior_mean, observations={\"x1\": 0, \"x2\": 0}):\n",
    "        pyro.module(\"guide\", self)\n",
    "        x1 = observations[\"x1\"]\n",
    "        x2 = observations[\"x2\"]\n",
    "        v = torch.cat((x1.view(1, 1), x2.view(1, 1)), 1)\n",
    "        v = self.neural_net(v)\n",
    "        mean = v[0, 0]\n",
    "        std = v[0, 1].exp()\n",
    "        pyro.sample(\"z\", dist.Normal(mean, std))\n",
    "\n",
    "guide = Guide()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Now create a `CSIS` instance:\n",
    "The object is initialised with the model; the guide; a PyTorch optimiser for training the guide; and the number of importance-weighted samples to draw when performing inference. The guide will be optimised for a particular value of the model/guide argument, `prior_mean`, so we use the value set here throughout training and inference."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "optimiser = pyro.optim.Adam({'lr': 1e-3})\n",
    "csis = pyro.infer.CSIS(model, guide, optimiser, num_inference_samples=50)\n",
    "prior_mean = torch.tensor(1.)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Now we 'compile' the instance to perform inference on this model:\n",
    "The arguments given to `csis.step` are passed to the model and guide when they are run to evaluate the loss."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "for step in range(n_steps):\n",
    "    csis.step(prior_mean)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### And now perform inference by importance sampling:\n",
    "\n",
    "The compiled guide program should now be able to propose a distribution for `z` that approximates the posterior, $p(z | x_1, x_2)$, for any $x_1, x_2$. The same `prior_mean` is entered again, as well as the observed values inside `observations`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "posterior = csis.run(prior_mean,\n",
    "                     observations={\"x1\": torch.tensor(8.),\n",
    "                                   \"x2\": torch.tensor(9.)})\n",
    "marginal = pyro.infer.EmpiricalMarginal(posterior, \"z\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### We now plot the results and compare with importance sampling:\n",
    "\n",
    "We observe $x_1 = 8$ and $x_2 = 9$. Inference is performed by taking 50 samples using CSIS, and 50 using importance sampling from the prior. We then plot the resulting approximations to the posterior distributions, along with the analytic posterior."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nent7W7FRUVHZ2u+++26rbdiwYebVq1dzjDFnzhzTMAxTklmxYkXz999/z9a+ZcsWa4yBAweaaWlp\nueazd+9eu+9Jhw4dTEmmu7t7HndummlpaWbz5s1NSWa5cuXMpUuX2o07c+aM2axZM2tce78Lr7zy\nSraf/86dO5uJiYkO5w8MDDQlmfXq1bPb/tZbb1njNW7c2Dx9+nSOmOjoaNPf39+K++abb3LExMTE\nZMvNx8fH3Lx5s8PcUDj8jQMAAABQWknF8wAAlA6Sok0n1KM4Yw6lzh9//KHIyEhJUp06ddShQ4ds\n7Q899JB1PW/evHyP261bN7311lvZzpuTJDc3N02fPt16vnbtWrv927Rpo+rVq+c6ftmyZfXuu+9a\nZ7stWrQo37nZ6t+/v7UN5rx585SRkWE37ssvv9SlS5ckyTqjqyT99NNPWrNmjSSpfv36Wr58uSpV\nqmQ31jAMDRw4sETzuXbtmsaOHavk5GRJUo0aNdSuXTurfefOndZ2m/Xq1dP8+fPtrgwbPXq0tfLy\njz/+0KxZs7K1//bbb9b1I488Ind391xzaty4ca7vSX4tXbpUv/zyiyTpn//8Z67bmVavXl3h4eFy\nc3NTenq63n//fYfj+vj46D//+Y98fHwKndvVq1f1r3/9S5JUpkwZLVmyRAEBATniWrVqlW2V3NSp\nU/Mc+//9v/+X43cdAAAAAAAAAK43bGXpZBMmTNDu3btdnYZTtWjRQjNnznTafOHh4UpJSZGUuXXl\nXwtp999/v8aNG6fk5GQtWrRIb7/9tsNiSZann34617b69eurVq1aOnHihPbt21fo3N3d3a2tHrdt\n2ybTNHPknxcPDw+NHj1ab775po4fP661a9faPfcuaxvLsmXLKiwsrNA559fixYut60mTJsnb27vE\n55QyC2x+fn7W86tXr+rQoUNatGiRYmJirNenTZuWrfAWERFhXT/11FMqV65crnO89NJL+uSTT2Sa\npiIiIrKdJejl5WVd79271zrvsKRkFXT9/Pw0evRoh7EhISFq1aqVtm/frm+//dZh7JAhQ3TLLbcU\nKbdNmzZZW4f269cvxxactoYNG6a///3vio2N1Q8//KD4+HhVrlzZbmyFChX08MMPFyk3AAAAAAAA\nAHAGCnModT777DPr+sEHH8zR7u3trUGDBunzzz/XmTNntGbNGvXr1y/Pce+8806H7YGBgTpx4oQu\nXLiQa0xGRoaWLVumpUuXateuXTp9+rSSkpLsrmpLSkpSYmKiKlasmGduf/Xoo49qypQpysjI0Kef\nfpqjMLdnzx5t375dkjRw4EC7Z+IVt82bN0vKXA1X0sUpWx988IE++OCDXNvLlSund999Vw888EC2\n17dt22Zd9+zZ0+EcderUUf369RUTE6O9e/cqOTnZKjx26tRJ5cqV05UrV/Taa68pPj5eDz30kJo2\nbVqEu7LPNE3rfQ4ICNDq1avz7JN1juHhw4eVmpqa67mGnTp1KnJ+BXlPDcNQjx499Omnn8o0TW3b\nts1ugVnKXGFXvnz5IucHAAAAAAAAACWNwpyTOXPl2M1o37591pf/d955p2699Va7cQ899JA+//xz\nSZnbPeanMJdX8crT01NS5oose06ePKmBAwdqx44dec6VpbCFudq1a6tv375auXKlVq5cqbNnz2Zb\n7ZS1Wk6SxowZU+DxC+PkyZOSpGrVqhV5u8aiKFOmjPz8/BQSEqKuXbtq9OjRqlWrVo64M2fOWNe5\n/RzZatCggWJiYpSRkaGzZ8+qbt26kqSqVatqxowZevLJJ5WamqoZM2ZoxowZuuWWW9S+fXt16tRJ\nffv2VcOGDYt8b3/88YcuXrwoSdq/f78GDRpUoP4XLlxQtWrV7LYFBgYWOT/b97RBgwZ5xtvG2Pb9\nq+LIDQAAAAAAAACcgTPmUKrYnhlnb7Vclu7du1tf5v/3v//V+fPn8xzbza3wvy6pqanq1auXVZSr\nUqWKHnnkEf3zn//U4sWLtXTpUkVGRioyMlJdu3a1+qWnpxd6zscee8yae/78+dbrKSkpVlGybt26\n6t69e6HnKIjExERJmdsOOtO8efOyHax57do1nTt3Ths3btTkyZPtFuWkzBWLUuaKuvxsdWp7X1l9\ns4wfP17ff/+9unbtam1NevbsWUVGRurZZ59Vo0aN1KlTJ0VHRxf2NiVlFuaK4tq1a7m2FceKNNv3\nJT9bmTp6T22xWg4AAAAAAADAjYLCHEqNtLQ063wtKbMYYhiG3Ye7u7tOnTolKbNwZXv+WUn48ssv\nrbPnevToodjYWM2dO1fPPPOMRo4cqfvuu08DBw7UwIEDcz1Hq6D69u2r2rVrS5Lmzp1rvf71119b\nq6pGjx5d4DPsCsvX11eSdOnSJafMV1Q+Pj6SpCtXruSrQGp7X1l9bXXt2lXr16/XuXPnFBERoRde\n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\nOWI+/PBD69y0ESNG6J133sl1FZWXl5d69erltPuy59SpU9Z1/fr1C9zfnj179uibb76RlHm+2sKF\nC+Xp6ZkjLiwsTE888YQkKSkpSR9++KHDccuWLauvvvpK/v7+Odpef/11axXWjh071KdPH7388ss5\n4qpVq6a//e1vkjI/w3Xr1uV5P88//7wGDBhgd6zw8HC5u7tLkmbOnJnneXOF1b17d5UvXz7X9sqV\nK1vnx2VkZGjx4sUlksdfvfPOO9b1vHnz1Lhx4xwxQUFBCg8Ptz6f6dOn5/k+TZo0Sf369cvxeuXK\nlTVx4kTr+dq1awubOgAAAAAAAIBiVqjCnGEYVQ3DeMEwjAOSNkgaKam8MgtscZLekVTfNM3epmku\nM03T7reLpmmekPTun0/rFSYXoLBuv/12q2BjT7du3azrffv2FXqetWvX6ty5c5KkZ555Rm5ujn/t\nRo0aJSlzq7qff/451zgvLy+NHj3aJXNXrVpVI0eOzLU9r/cuqyDi5uamt956y2FO9pTUfeUmPj7e\nuvbz8ytwf3siIiKs6yeffNJhQenFF1+0Cja2/ey59957FRQUZLctMDBQwcHB1vOsAqo9HTt2tK7z\n+vl3d3fXhAkTcm2/7bbbrOLqyZMntX37dofjlaS6deuqevXqkqStW7eW+HyxsbHatWuXJKlp06bq\n06dPrrFt27a1fneOHTumHTt25Brr7u5uFU/tKa5/vwAAAAAAAAAUrwIf9GMYxteS+kkqk/XSn/+N\nkvSxpEjTNFMLMOSxP/+b+7fSQAm48847HbbbntN24cKFQs+zadOmbOMsW7bMYbzt6qz9+/erS5cu\nduNuv/12eXt7u2Tu1q1bWyug7HH03iUkJFiFgttuu01169Z1mJM9JXVfzmS7CrNnz54OY2vXrq1G\njRpp//79OnDggBITE+Xr62s31t4qRlu33HKLjh49KimzEOQoLkteP/9NmjTJFm9Pt27dtHr1aknS\n9u3b8/z9K6zExEQtXrxYq1ev1q+//qrz588rOTnZbuzJkydLJAdbBfmcs2KyVplu3bo118+oQYMG\ndldFZimuf78AAAAAAAAAFK8CF+aUuTVllgRJCyTNNk3zUCFzSFHmNpgZhewPFEqVKlUctttuK1iY\n7Q+zxMbGWteOVijZ4+gLddsv3p09d1HeO9siWUhISIFyylJS95WbypUrW9cXL14scH97srbylDKL\n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\nDMMo0PgAAAAAAAAAbgwOvyE1DKOjpLtyaR5iGMZteYxvSPKW1FJSD0mmpJ8LmmSpk8v5RyjdDMPQ\npEmTNHr0aM2ZM0fff/+9Dh48qISEBLm5ualKlSpq1KiR2rVrp759++rOO+8sFXM7cscdd+jQoUNa\nsGCBli9frl27dun8+fMyDEPVq1dXs2bN1KtXL40YMeK6uq927drpp59+0g8//KBVq1Zp48aNOnny\npOLj42UYhipVqqSQkBC1b99ew4YNU+PGjXMdq0GDBvr111+1YMECLV26VLt371Z8fLwqVKigOnXq\nqE+fPho/fvx1uVLOVo8ePbR7927961//0urVq3Xy5EmVKVNGjRs31qhRozR27NgSK8pl+f/s3XmU\nVNW9//33bmaUBhlbRBnVEEFRURQQQcSfQ0wQbiIalUEJcUg08ZrHexPHK5oYo4kxwaiIE5qYxAFn\nZNBEIDiAAzihAirKKA3YqAi9nz+qumygqrq7umhoeL/WOutUn7OHb3VX45IPe59rr72Wfv36ccst\ntzB79mzWrFlDy5Yt6dq1K6eddhojRoyodA333nsv/fr1429/+xvz5s2juLg443arlVG3bl1uv/32\n1Gf1+eef59NPP6W0tJSioiL69u3LyJEjGTBgQM5zSJIkSZIkSdrxhZglJAohXAFcvuXl5Lmq6VIA\nNgF9Y4yzq9h3m+vZs2eszLOH0nnrrbfo2rVrniuSpB3XokWLUs9iy2UFmWoP/xsnSZIkaWeVr81K\n/Df4krRzCCG8EmPsua3nSb8/3Ba1bHFkul7R8QZwyo4YykmSJEmSJEmSJEnbWkV7et0DvFDu6wBM\nJrFa7gpgVgX9S4HPgYUxxpW5FilJkiRJkiRJkiTVdlmDuRjjQmBh+WvhmzXer8cYp26juiRJkiRJ\nkiRJkqSdSkUr5tIZlDy/ls9CJEmSJEmSJEmSpJ1ZlYM5V8lJkiRJkiRJkiRJVZfLijlJ0i6uQ4cO\nxBi3dxmSJEmSJEmSVKtkDOZCCG3LXscYP0l3PVflx5MkSZIkSZIkSZJ2BdlWzH2UPMct2n2cvJar\nLceTJEmSJEmSJEmSdnrZArKQ4z1JkiRJkiRJkiRJW8gWzE2s4nVJkiRJkiRJkiRJGWQM5mKMZ1bl\nuiRJkiRJkiRJkqTMCrZ3AZIkSZIkSZIkSdKuwGBOkiRJkiRJkiRJqgHbNJgLIdQNITTYlnNsMd8z\n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\nrbMG5FuGgTXBYE6SJEnSzqo2/t2XJGnbqalgroAchRDOCCG8CnwCTAH+DtxbieOeXOeU8unQQw/l\niCOOSHuvQYMGm21/N2bMGOrUqZO2bd++fVOv33zzzQrnvfjiizPea9OmDWeccQYAX3zxBU8//fRm\n9x966KHU60suuYQQAplceumlafulM3ToUNq2bZu1zbbSu3fv1OvZs2dX2P7CCy/MeK9fv37UrZvY\noTfdz2LixImp17/61a/YbbfdqlIqq1ev5oknngDgtNNOY6+99sravuxnCTB58uQqzVWmVatWzJ49\nm+HDh2/2Gdy4cSOvvvoqd9xxB2effTadOnWib9++TJ06Nad5yiv/M3nxxew7ANepU4cf//jHGe/3\n6dMn9frkk09m7733TtuuXbt2dOjQAajc79F5551Hw4YN094LIfDzn/889XXZVqzb0rnnnpt261SA\nJk2apP48WbhwIV9++eVm95944gk2btwIwMiRI9NuYVsm2+dfkiRJkiRJ0o4vp2fMhRBuB0aVfZm/\ncqSa06tXr6z327Rpk3p9+OGHV6rd6tWrs47ZtGlTDj300KxtjjnmGP785z8D8NJLLzFs2LDUvbKQ\nJITAoEGDso7Tu3dvdt99dz7//PMKA6+jjjoq6/3qWLRoEXfffTfPPfccb7/9NsXFxVsFE2UyPdOt\nTOPGjenevXvG+/Xr16dly5YsXbo07c+i7BmAIQROPvnkKryLhBkzZlBaWgokAqlHHnkka/uvv/46\n9fqtt96q8nxlWrRowV133cXYsWP5+9//zrRp05g1axYrV67cqr5jjz2WX/7yl2mfAVhm/vz53H33\n3cyYMYMFCxaknmGXTkU/k/33359mzZplvF/Z36OytgsXLqzw9whg4MCBWe8fc8wxqdcvvfRSheNV\nV6aQv0xZiBtjpLi4mKKiotS9l19+OfV6wIABWcc5+OCDU88dlCRJkiRJklT7VDmYCyH8ADi73KXZ\nwDRgCfBVnuqStrkWLVpkvd+gQYNKtS3fLlPgVKZz585ZV7kBdOnSJfX6k08+2ezep59+CkBRURFN\nmjTJOk5BQQGdO3fmtdde47PPPmPDhg0ZV/RUtPIrV7///e+59NJL+eqryv3RsHbt2qz3W7RoUeH3\nr+znke5nURYytW7dmubNm1eqpvIWLVqUej1u3DjGjRtX6b6VCZsqstdee3HRRRdx0UUXAbB48WL+\n85//8OSTT/Lggw+m3vPYsWPZf//9OfPMMzfrH2Pk0ksv5YYbbkgFjBWpzM8km8r+HpVvW5nPS/nf\nk0x1NWvWjOLi4q1+j7aFli1bZr2f7c+J8vV16tSpwrk6duzIq6++WsUKJUmSJEmSJO0IclkxNzp5\n/hr4YYzxH3msR6oxBQWV38m1Km2zady4cYVtym+v+Pnnn292b926dVu1yWb33XffrG+mYKRRo0aV\nGq8qJk6cyM9+9rPU10cddRRHH300HTp0oEmTJqmQcPny5YwZMwaATZs2ZR2zuj+HspCp/PelKqqz\nSinTirTqaN++Pe3bt+fUU0/l6quv5vjjj+ftt98G4KqrrtoqmLv22mu5/vrrgcSKv2OPPZbevXuz\nzz77sNtuu1GvXj0A5s2bx2WXXQbk92eSr98jqPzvUnFx8Va/R9tCdd5bSUlJ6nVV/4yQJEmSJEmS\nVLvkEswdDETgrh0xlIsxjgBGbOcypLTWr19fYZvyf0m/ZYDUpEkTiouLN2uTTflAoqIVdvlWFuzU\nrVuXSZMmccIJJ6RtN3/+/BqrqbCwkM8++yznoKb8z+POO+9k5MiR+Sqt2tq3b8+ECRM48sgjAXj/\n/fdZvHgx7du3BxLPLLzuuuuAxGdh+vTpGbdVLQvodmTr16+v8DNd9nuSaxBbU8oHbVX9M0KSJEmS\nJElS7ZLLP/Ev+xvE5/JYh7RLeP/994kxZm3z3nvvpV63bdt2s3t77rknAEuXLq0wXIox8v777wOJ\nbf0ybWO5LXzwwQcsXLgQgMGDB2cM5SCxHWNNadeuHZBYpffZZ59VuX/5LT8revba9tCrV6/NQqjy\nWyTOmjUrFeiMGTMm67MOa/JnkqvyvyfprFq1iuLiYmDr36MdTfn6Pvjggwrbl/1uSZIkSZIkSap9\ncgnmliTP2R/0JGkra9asYc6cOVnbTJ8+PfX6sMMO2+ze4YcfDiRCtylTpmQdZ+bMmanwrqxfdZU9\n362icHHZsmWp1507d87a9plnnql+YZV01FFHAYn6H3vssSr379evX+p7MHny5LzWlg8hBOrW/WYh\ndPmQbkf9meRq2rRpWe9n+z3a0fTs2TP1unzd6cydO7daW6pKkiRJkiRJ2r5yCebK/tbwoHwWIu0q\nbrzxxoz3VqxYwX333QcknjV1/PHHb3Z/6NChqdc33HBD1oDsN7/5Tdp+1VEW9FS0lV7552SVrdpL\n56OPPmLChAl5qa0yzjjjjNTrsWPHVnlLwNatW6d+Ji+88MI2D+dKS0tZuXJlpdv/+9//Tq0Sa9iw\nIZ06dUrdq+zPZM6cOTz++OM5VFuz/vznP/PVV19lvH/TTTelXg8ZMqQmSsrZSSedlApUJ0yYkHoW\nYjp/+MMfaqosSZIkSZIkSdtALsHc74GvgVEhhOZ5rkfa6d1///3ceuutW10vKSnhtNNOS62GGTVq\nFM2aNduszUknncQBBxwAwIwZM7jkkksoLS3daqxrr702tSJs77335oc//GFeau/YsSMAb7/9Nl98\n8UXGdl27dk09N+vRRx/lxRdf3KrNsmXLGDx4MOvWrctLbZVxxBFHcOKJJwKwYMECBg8enHFLyxgj\nkyZN2ur6Nddck3oG27Bhw3j66aezzrlw4UIuvvhili9fXuV6N2zYQIcOHbj44ot5++23s7adP38+\nw4cPT319yimnbPbssvKrsu6444602yEuWLCAoUOHpv1M7Wg++OADRo8ezcaNGze7HmPkf//3f5k5\ncyYABx54IIMGDdoeJVZaUVERw4YNAxLbrJ511llpQ8c777yTe+65p6bLkyRJkiRJkpRHdStusrkY\n4/wQwk+AccDTIYShMcaP8l+atPPp0aMHxcXFnHvuuTzyyCOccsopNGvWjHfffZfx48ennu3VsWNH\nxo4du1X/goIC7rvvPnr37s0XX3zB7373O6ZPn84Pf/hD2rVrx7Jly3jwwQd54YUXAKhXrx733HMP\nDRs2zEv9AwcO5PXXX6ekpISTTz6Z4cOH07Jly9T2jocffjjNmzenfv36jBkzhhtvvJGvv/6afv36\nMWrUKA477DDq1avHnDlzmDBhAsXFxZx11lk1GjbcfffdHH744SxcuJApU6bQuXNnhg0bxmGHHUZh\nYSGrV6/m9ddf5/HHH2fRokVbrUo85JBDGDduHKNHj2b16tWccMIJ9OnThxNOOIGOHTtSr149Pvvs\nM95++21eeOEFXn75ZQB+9rOf5VRvSUkJN954IzfeeCMHHnggffr0oVu3brRs2ZIYI0uWLOFf//oX\nTzzxRCqkKioq4vrrr99snL322oshQ4bw0EMPUVxczEEHHcSYMWM48MADKS0tZebMmdxzzz18+eWX\nNf4zycXgwYO59957mTt3LsOHD2efffZh2bJlPPDAA8yaNQuABg0aMH78+NTnc0f2u9/9jmeffZZl\ny5bx6KOP0r17d0aMGEHnzp0pLi5m0qRJPPnkk3Tu3JnCwkLmzp1bK96XJEmSJEmSpM1VOZgLIZwO\nlAB/B04F3g0hPAr8B1gJVLjUIsZ4f1XnlXYGTZs2ZcKECXznO9/hmWeeSfssr86dOzN58mQKCwvT\njtGjRw+mTp3K0KFD+fTTT5kzZ07a59a1aNGC+++/n/79++et/osvvpj77ruPFStWMHXqVKZOnbrZ\n/enTp6fmGzt2LHPnzmX69Ol89dVXjBs3jnHjxm3WfsyYMfziF7+o0RCoZcuWzJo1i1NPPZXnn3+e\n4uJibr311rSrGDMFH2effTatW7dm9OjRLFu2jBkzZjBjxoyMc7Zo0SKncLROnToccMABzJ8/H4DX\nX3+d119/PWuf3r17c/fdd9OuXbut7t12220sWLCAN954g3Xr1nHDDTdsdr+goID/+7//o2/fvjt8\nMDdhwgRWrFiRWjm6pSZNmvDAAw9stlJwR9a6dWumTJnC8ccfz5IlS1iwYAG//OUvN2uz995789BD\nD3HeeecBifcoSZIkSZIkqXapcjAH3AeULSGJQAPg+8mjMiKwSwdzWR4Lpl1Ajx49mDt3LjfffDOP\nPPIIixcvJsbIvvvuy/e//30uvPDCzZ4Hls6RRx7JggULuO2223j00Ud58803KS4uprCwkP3335/v\nfOc7nHvuuVtthVlde+21F3PmzOGGG25g6tSpLFq0iJKSkrTPumvYsCGTJ0/m9ttv595772XevHls\n2LCBoqIievXqxdlnn81xxx3HokWL8lpjZbRp04bnnnuOp556igceeIAZM2awbNkyNmzYwB577EHX\nrl0ZMGAAp59+esYxTj75ZBYuXMg999zDk08+ydy5c1m5ciWbNm2iadOmdOnShZ49e3Lcccdx3HHH\nUb9+/SrXWa9ePebNm8eCBQt49tlnmTFjBm+99RaLFy9m7dq11KlTh8LCQjp16kTPnj0ZOnQo/fv3\nzxgotmjRgv/85z/cfPPNPPjgg7zzzjsA7LnnnvTr148xY8bQq1cvnnvuuSrXWtOaNWvG9OnTuf32\n25k4cSLvvPMOn3/+Oe3atePEE0/kkksuYe+9997eZVZJt27dePPNN7npppt46KGH+OCDDwgh0KFD\nB4YMGcJPfvITWrRowapVqwBo3tzdpCVJkiRJkqTaJqT7C/WsHUKo7sOHYoyxTjXHyLuePXvGsi3n\n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\nIiIifqBgTkRERERERERERERERMQPFMyJiIiIiIiIiIiIiIiI+IGCORERERERERERERERERE/UDAn\nIiIiIiIiIiIiIiIi4gcK5kRERERERERERERERET8QMGciIiIiIiIiIiIiIiIiB8omBMRERERERER\nERERERHxAwVzIiIiIiIiIiIiIiIiIn6gYE5ERERERERERERERETEDxTMiYiIiIiIiIiIiIiIiPhB\nUE03QERERERERERERKTOMozq25dpVt++RESkVlKPORERERERERERERERERE/UDAnIiIiIiIiIiIi\nIiIi4gcK5kRERERERERERERERET8QMGciIiIiIiIiIiIiIiIiB8omBMRERERERERERERERHxAwVz\nIiIiIiIiIiIiIiIiIn6gYE5ERERERERERERERETEDxTMiYiIiIiIiIiIiIiIiPiBgjkRERERERER\nERERERERP1AwJyIiIiIiIiIiIiIiIuIHCuZERERERERERERERERE/EDBnIiIiIiIiIiIiIiIiIgf\nKJgTERERERERERERERER8YOgmm6AiIiIiIiIiIiIiFQzw6ie/Zhm9exHREQA9ZgTERERERERERER\nERER8QsFcyIiIiIiIiIiIiIiIiJ+oGBORERERERERERERERExA80x5yIiIiIiIiIiIiI1CslJSVk\nZWVRWFhISUkJJSUluFwuXC4XQUFBOBwOgoODCQ4OJiwsjNjYWEJDQ2u62SJyFlAwJyIiIiIiIiIi\nIiJnBdM0OXjwINu2bWP37t3s3bvXXvbv34/T6SQrK4v8/PyT3ndYWBhxcXHExcVxzjnn0Lx5c3tp\n0aIFbdq0oXnz5gQEaKA6ETk2BXMiIiIiIiIiIiIiUufk5uayYcMG1q9fz+bNm9m6dStpaWnk5OT4\nbJeYmGiHZ506dSI2Npa4uDhiY2OJjIz06R0XFBSE2+22e9GVlJRQWFhIVlYWWVlZOJ1OnE4nBw4c\nYPHixRw4cADTNO37Cg8Pp02bNrRt25YLL7yQ5ORkUlJSSExM9PfTIyK1lII5EREREREREREREanV\nysrK2Lx5MytXruSbb75h/fr1/PTTT3a9cePGtGvXjptuuol27drRpk0bWrduTbNmzc7oEJQlJSXs\n37+f3bt3s23bNjsc/Oabb3jnnXfs7Vq0aEFKSgrdu3end+/eJCcn43A4zli7RKT2Msqn+fVZamqq\n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\nV5Oenu4TvN1555384x//oLi4uNKJosjISB566CEee+wx8vPzGTduHHFxBj2V9AAAIABJREFUccTH\nx9snm7p27Uq7du0oLS3F6XQSFxenuV1ERETkrOByuXC5XISHh1NcXMynn37qE9xlZGQwfPhwRowY\nwa5du+jcuTNOp9OeJxfgn//8J/fccw+bNm3i4osvJiwszCe8e+yxx+jfvz979uzhrbfe8gn1YmNj\nOf/884mKiqqWx6Ng7kR2YbJ9+3bWrFljLxs3bsTtdhMYGEiXLl3o27cv/fr145JLLvntL5gpmBOR\neqAQ+GbpUr766itWrVrFmjVrKCwsBCApKcknqEtKStLoN9VEwdxxGNZRdh1wM9ARSAScwI/AO8Dr\npmmWnsw+FcyJiIicnfbt20d6ejrZ2dl2sBYVFcW1114LwIMPPkhaWppP8Na9e3fef/99AJo1a8a+\nfft89nnNNdfY9UsvvZTAwECfcK1nz55ceeWVAHz99dc+J4qCg4P9+OhFRERE6r6ysjLy8vLsL0s1\nadKERo0aceDAAWbPnk1WVpb9BamsrCwee+wxLr/8cpYuXcqAAQMq7e/TTz/lyiuvZOHChdx66632\n57SYmBiio6N56qmnaNOmDT/++CNffvkl0dHRxMTE2PWkpCS7F5eCucqcTiffffedHcKtXbuWrKws\nAKKioujatSvdunWje/fu9OrV6+RDUgVzIlJflHsPdrlcbNiwgVWrVtlhXWZmJmCNsJOcnExqaiop\nKSmkpKTQunVrhXWnQMHcMRiGEQu8D/Q7zmYbgBGmae450f0qmBMREak9TNO0P0Du3buXffv2kZub\nS25uLjk5OZimyfjx4wF45ZVXWLVqlU/wds455/DNN98A0KtXL1atWuWz/+TkZNavXw/A8OHD2bNn\nD7GxsfYJl+TkZO6++24AFi5cSEBAADExMcTGxhIdHU18fHzlIXVEREREpNY5cuSI/QUsb3jXvXt3\nGjZsyIYNG5gxY4Yd6OXk5JCdnc1//vMfLrroIl577TUmTpxYaZ8//vgj7dq1Y8qUKUya9CQQDcR4\nlmhgGhAPfI11iqpi/UIgEGvgsqMnTWtluHOc84Zut5sdO3bwww8/+Cy//vorAIZhcMEFF9CtWzd7\nadu2LYGBgafXJgVzIlJfHOc9uKysjG3btrFq1SrWrVvH+vXr2bhxIy6XC7DCOm9Il5KSQseOHfnd\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fb319ac1048>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import scipy.stats\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# Draw samples from empirical marginal for plotting\n",
    "csis_samples = [marginal().detach() for _ in range(1000)]\n",
    "\n",
    "# Calculate empirical marginal with importance sampling\n",
    "is_posterior = pyro.infer.Importance(model, num_samples=50).run(prior_mean,\n",
    "                                                                observations={\"x1\": torch.tensor(8.),\n",
    "                                                                              \"x2\": torch.tensor(9.)})\n",
    "is_marginal = pyro.infer.EmpiricalMarginal(is_posterior, \"z\")\n",
    "is_samples = [is_marginal().detach() for _ in range(1000)]\n",
    "\n",
    "# Calculate true prior and posterior over z\n",
    "true_posterior_z = np.arange(-10, 10, 0.05)\n",
    "true_posterior_p = np.array([np.exp(scipy.stats.norm.logpdf(p, loc=7.25, scale=(5/6)**0.5)) for p in true_posterior_z])\n",
    "prior_z = true_posterior_z\n",
    "prior_p = np.array([np.exp(scipy.stats.norm.logpdf(z, loc=1, scale=5**0.5)) for z in true_posterior_z])\n",
    "\n",
    "plt.rcParams['figure.figsize'] = [30, 15]\n",
    "plt.rcParams.update({'font.size': 30})\n",
    "fig, ax = plt.subplots()\n",
    "plt.plot(prior_z, prior_p, 'k--', label='Prior')\n",
    "plt.plot(true_posterior_z, true_posterior_p, color='k', label='Analytic Posterior')\n",
    "plt.hist(csis_samples, range=(-10, 10), bins=100, color='r', normed=1, label=\"Inference Compilation\")\n",
    "plt.hist(is_samples, range=(-10, 10), bins=100, color='b', normed=1, label=\"Importance Sampling\")\n",
    "plt.xlim(-8, 10)\n",
    "plt.ylim(0, 5)\n",
    "plt.xlabel(\"z\")\n",
    "plt.ylabel(\"Estimated Posterior Probability Density\")\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Using $x_1 = 8$ and $x_2 = 9$ gives a posterior far from the prior, and so using the prior as a guide for importance sampling is inefficient, giving a very small effective sample size. By first learning a suitable guide function, CSIS has a proposal distribution much more closely matched to the true posterior. This allows samples to be drawn with far better coverage of the true posterior, and greater effective sample size, as shown in the graph above.\n",
    "\n",
    "For other examples of inference compilation, see [1] or <https://github.com/probprog/anglican-infcomp-examples>.\n",
    "\n",
    "## References\n",
    "\n",
    "[1] `Inference compilation and universal probabilistic programming`,<br />&nbsp;&nbsp;&nbsp;&nbsp;\n",
    "Tuan Anh Le, Atilim Gunes Baydin, and Frank Wood"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
